package com.dawan.sbjy.common;
import com.dawan.sbjy.util.PropertiesUtil;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class RedisPool {

    private  static JedisPool pool;//jedis连接池
    private  static  Integer maxTotal= Integer.parseInt(PropertiesUtil.getProperty("redis.max.total"));//最大连接数
    private  static Integer maxIdle=Integer.parseInt(PropertiesUtil.getProperty("redis.max.idle"));//在jedispook中最大的idle状态（空闲的）的jedis实例的个数
    private  static  Integer minIdke=Integer.parseInt(PropertiesUtil.getProperty("redis.min.idle"));//在jedispook中最小的idle状态（空闲的）的jedis实例的个数
    private  static  boolean testOnBorrow=Boolean.parseBoolean(PropertiesUtil.getProperty("redis.test.borrow"));//在borrow一个jedis实例的时候，是否要进行验证操作，如果ture，可以用的
    private  static  boolean testOnReturn=Boolean.parseBoolean(PropertiesUtil.getProperty("redis.test.return"));//在return一个jedis实例的时候，是否要进行验证操作，如果ture，可以用的
    private  static  String host=PropertiesUtil.getProperty("redis.host");//在borrow一个jedis实例的时候，是否要进行验证操作，如果ture，可以用的
    private  static  Integer port=Integer.parseInt(PropertiesUtil.getProperty("redis.port"));//在return一个jedis实例的时候，是否要进行验证操作，如果ture，可以用的
    private  static  Integer time=Integer.parseInt(PropertiesUtil.getProperty("redis.time"));//在return一个jedis实例的时候，是否要进行验证操作，如果ture，可以用的

    private  static void initPool(){
        JedisPoolConfig config=new JedisPoolConfig();
        config.setMaxTotal(maxTotal);
        config.setMaxIdle(maxIdle);
        config.setMinIdle(minIdke);
       config.setTestOnBorrow(testOnBorrow);
        config.setTestOnReturn(testOnReturn);
        pool=new JedisPool(config,host,port,time);
    }
    static {
        initPool();
    }
    public  static Jedis getJedis(){
        return  pool.getResource();
    }
    public  static void returnResource(Jedis jedis){
        if(jedis!=null){
            pool.returnResource(jedis);
        }
    }
    public  static void returnBrokenResource(Jedis jedis){
        pool.returnBrokenResource(jedis);

    }
}
